Chuyển tới nội dung chính

Tra cứu lệnh chuyển đổi

Tra cứu trạng thái và chi tiết một lệnh chuyển đổi. API hỗ trợ hai mục đích:

  1. Timeout recovery — khi gọi Thực thi chuyển đổi bị timeout, tra cứu kết quả lệnh mà không cần retry
  2. Đối soát — tra cứu lệnh trong ngày phục vụ reconcile

Hỗ trợ hai cách tra cứu

  • Theo conversion_id — nếu Merchant đã nhận được conversion_id trong response Thực thi chuyển đổi
  • Theo origin_request_id — nếu Merchant chưa nhận response Thực thi chuyển đổi (timeout): dùng request_id của lệnh Thực thi chuyển đổi để tra

Trường hợp timeout chưa nhận conversion_id, tra theo origin_request_id. Nếu nhận mã 430 (không tìm thấy), lệnh gốc chưa được ghi nhận phía Baokim, Merchant an toàn để retry Thực thi chuyển đổi với cùng request_id.

Luồng xử lý

Đường dẫn

  • URL: /api/v1/fx/conversion-detail
  • Method: POST

Request

Tham sốLoại dữ liệuBắt buộcMô tả
request_idstring(50)Mã duy nhất định danh request (của chính lệnh tra cứu này). Xem mục 3 Giới thiệu
request_timestring(19)Xem mục 3 Giới thiệu
merchant_codestring(20)Xem mục 3 Giới thiệu
conversion_idstring(50)Có điều kiệnMã lệnh chuyển đổi cần tra cứu. Bắt buộc nếu không truyền origin_request_id.
origin_request_idstring(50)Có điều kiệnrequest_id của lệnh Thực thi chuyển đổi cần tra cứu. Bắt buộc nếu không truyền conversion_id. Truyền cả hai → ưu tiên conversion_id.

Ví dụ Request — tra theo conversion_id

{
"request_id": "MERCHANT1234BK202606050003",
"request_time": "2026-06-05 10:16:10",
"merchant_code": "MERCHANT1234",
"conversion_id": "FXC202606051015450001"
}

Ví dụ Request — tra theo origin_request_id (timeout recovery)

{
"request_id": "MERCHANT1234BK202606050003",
"request_time": "2026-06-05 10:16:10",
"merchant_code": "MERCHANT1234",
"origin_request_id": "MERCHANT1234BK202606050002"
}

Response

Tham sốLoại dữ liệuBắt buộcMô tả
response_codeint(4)Mã kết quả
response_messagestring(200)Mô tả mã kết quả
merchant_codestring(20)Mã merchant
dataObjectChi tiết lệnh chuyển đổi (cấu trúc giống response Thực thi chuyển đổi)

Cấu trúc data

Cấu trúc data giống response của Thực thi chuyển đổi:

Tham sốLoại dữ liệuMô tả
conversion_idstring(50)Mã lệnh chuyển đổi
origin_request_idstring(50)request_id của lệnh gốc
statusstring(20)Trạng thái lệnh: PROCESSING, SUCCESS, FAILED
quote_idstring(50)Mã báo giá đã thực thi
trade_typestring(4)Loại hình giao dịch (SELL/BUY)
currency_pairstring(10)Cặp tiền tệ chuẩn hóa
ratedecimal(18,4)Tỷ giá đã thực thi
from_currencystring(3)Đồng tiền nguồn
from_amountdecimal(18,2)Số tiền nguồn đã trừ
to_currencystring(3)Đồng tiền đích
to_amountdecimal(18,2)Số tiền đích đã ghi có
created_atstring(19)Thời điểm tạo lệnh
completed_atstring(19)Thời điểm hoàn tất. Null khi status = PROCESSING.

Ví dụ Response

{
"response_code": 200,
"response_message": "Success",
"merchant_code": "MERCHANT1234",
"data": {
"conversion_id": "FXC202606051015450001",
"origin_request_id": "MERCHANT1234BK202606050002",
"status": "SUCCESS",
"quote_id": "FXQ0605A7K2M9XD41",
"trade_type": "SELL",
"currency_pair": "USD/VND",
"rate": 26450.0000,
"from_currency": "USD",
"from_amount": 10000.00,
"to_currency": "VND",
"to_amount": 264500000,
"created_at": "2026-06-05 10:15:45",
"completed_at": "2026-06-05 10:15:46"
}
}

Mã lỗi

Mã ResponseThông báo ResponseMô tả
200Success
101System ErrorLỗi không mong muốn phía Baokim
110Merchant code invalidmerchant_code không xác định
120Invalid signatureHeader Signature không hợp lệ
422Validation ErrorThiếu cả conversion_idorigin_request_id, hoặc trường khác không hợp lệ
429Too many requestsVượt quá giới hạn tỷ lệ cho Merchant
430Conversion not foundKhông tìm thấy lệnh với conversion_id hoặc origin_request_id. Nếu tra theo origin_request_id: lệnh gốc chưa được ghi nhận, Merchant an toàn để retry Thực thi chuyển đổi.